<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8" />
    <title>3.模拟一个Vue中数据代理与劫持</title>
  </head>
  <body>
    <script type="text/javascript" >
      let vm = {_data:{}}

      //数据劫持
      Object.defineProperty(vm._data, 'n',{
        get:function jiechiGetter(){
          return 1
        },
        set:function jiechiSetter(value){
          console.log(`我就做两件事: ①维护数据，数据是:${value}; ②更新页面`)
        }
      })

      // 数据代理
      Object.defineProperty(vm, 'n',{
        get:function dailiGetter(){
          return vm._data.n
        },
        set: function dailiSetter(value){
          vm._data.n = value
        }
      })

    </script>
  </body>
</html>